<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>构造函数创造对象</title>
  </head>

  <body>

  </body>
  <script>
    /* 
    一.构造函数：是一种特殊的函数，主要用来初始化对象，即为对象成员变量赋初始值，它总与 new 运算符一起使用。
       我们可以把对象中一些公共的属性和方法抽取出来，然后封装到这个函数里面。
    二.构造函数的格式
       function 构造函数名(){
         this.属性名=属性值;
         this.方法名=function(){}
       }
       var 对象1=new 构造函数名();
       var 对象2=new 构造函数名();
    三.在 js 中，使用构造函数要时要注意以下两点：
        3.1构造函数用于创建某一类对象，其首字母要大写
        3.2构造函数要和 new 一起使用才有意义
   
    */
    function Star(name, age, play) {
      this.name = name;
      this.age = age;
      this.play = play;
      this.show = function () {
        console.log("我叫" + this.name + "，年龄" + this.age + "，会" + this.play);
      }
    }

    //创建对象
    var ldh = new Star("刘德华", 18, "唱歌");
    var zxy = new Star("张学友", 50, "表情包");

    //调用构造函数
    console.log(typeof (ldh)); //Object
    console.log(ldh.name); //刘德华
    console.log(ldh.age); //18
    console.log(ldh.play); //唱歌
    console.log(ldh.show());
  </script>

</html>